#!/usr/bin/env python 3.9
# -*- coding = utr-8 -*-
'''
@Project: Flask
@File: app.py
@IDE: PyCharm
@Author: Simon
@Date: 5/4/21  10:59 AM
'''


from flask import Flask, render_template, request
import datetime

app = Flask(__name__)

# 开启 Debug 模式
app.config.update(DEBUG=True)


# 路由解析，通过用户访问的路径，匹配相应的函数
@app.route('/')
def hello_world():
    return "Hello Flask!"


# http://127.0.0.1:5000/index
@app.route('/index')
def hello_world2():
    return "Hello Index"


# http://127.0.0.1:5000/user/simon
@app.route('/user/<name>')
def welcome(name):
    return "Hello %s" % name


# http://127.0.0.1:5000/user/12
@app.route('/user/<int:id>')
def welcome2(id):
    return "Hello No.%d Person" % id


# !!!  路由路径不能重复，用户通过唯一路径访问特定的函数   !!!


# 使用 jinja 渲染 templates 中的 html
@app.route('/jinja')
def jinja():
    return render_template("temp.html")


# 向页面传递一个变量
@app.route('/jinja2')
def jinja2():
    # 普通变量
    time = datetime.date.today()

    # 列表变量
    name = ["Simon", "Alice", "Amber"]

    # 字典变量
    task = {"Task": "Wash Room", "Time": "3 Hours"}

    return render_template("temp.html", var=time, list=name, task=task)


# 表单提交
@app.route('/test/register')
def register():
    return render_template("test/register.html")


# 必须允许 POST， 默认为 GET
@app.route('/result', methods=['POST', 'GET'])
def result():
    if request.method == "POST":
        # 拿到表单中所有内容
        result = request.form
        return render_template("test/result.html", result=result)


if __name__ == '__main__':
    app.run()

